bitkeeper revision 1.985 (40d54212AaOKN_5U41AzX44kVS3-7w)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Sun, 20 Jun 2004 07:51:46 +0000 (07:51 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Sun, 20 Jun 2004 07:51:46 +0000 (07:51 +0000)
Allow compilation of Xen with debug symbols.

xen/arch/x86/apic.c
xen/arch/x86/mm.c
xen/include/asm-x86/fixmap.h
xen/include/asm-x86/io_apic.h

index e36f7ff44b24250b7b7e04e55fa1954cea540f4b..6831c3021ad5cf5c10a68ede857a2fed8a8bfd17 100644 (file)
@@ -470,7 +470,7 @@ void __init init_apic_mappings(void)
                 ioapic_phys = mp_ioapics[i].mpc_apicaddr;
             set_fixmap_nocache(idx, ioapic_phys);
             Dprintk("mapped IOAPIC to %08lx (%08lx)\n",
-                    __fix_to_virt(idx), ioapic_phys);
+                    fix_to_virt(idx), ioapic_phys);
             idx++;
         }
     }
index 403a91ac86334bf3f9ef4d461b99de58e059a917..f9f739265e813b732a90e7d0037767bb2b08ddc1 100644 (file)
@@ -45,7 +45,7 @@ static inline void set_pte_phys(unsigned long vaddr,
 void __set_fixmap(enum fixed_addresses idx, 
                   l1_pgentry_t entry)
 {
-    unsigned long address = __fix_to_virt(idx);
+    unsigned long address = fix_to_virt(idx);
 
     if ( likely(idx < __end_of_fixed_addresses) )
         set_pte_phys(address, entry);
index fcfa97aee95c84e73d4de9a8de5cc9da36327a15..211d4cf895dd95aa711aa60be09f4b9a67d2836f 100644 (file)
@@ -6,8 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1998 Ingo Molnar
- *
- * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
+ * Modifications for Xen are copyright (c) 2002-2004, K A Fraser
  */
 
 #ifndef _ASM_FIXMAP_H
  * Here we define all the compile-time 'special' virtual
  * addresses. The point is to have a constant address at
  * compile time, but to set the physical address only
- * in the boot process. We allocate these special  addresses
- * from the end of virtual memory (0xfffff000) backwards.
- * Also this lets us do fail-safe vmalloc(), we
- * can guarantee that these special addresses and
- * vmalloc()-ed addresses never overlap.
- *
- * these 'compile-time allocated' memory buffers are
- * fixed-size 4k pages. (or larger if used with an increment
- * highger than 1) use fixmap_set(idx,phys) to associate
- * physical memory with fixmap indices.
- *
- * TLB entries of such buffers will not be flushed across
- * task switches.
- */
-
-/*
- * on UP currently we will have no trace of the fixmap mechanizm,
- * no page table allocations, etc. This might change in the
- * future, say framebuffers for the console driver(s) could be
- * fix-mapped?
+ * in the boot process. We allocate these special addresses
+ * from the end of virtual memory backwards.
  */
 enum fixed_addresses {
 #ifdef CONFIG_X86_LOCAL_APIC
-       FIX_APIC_BASE,  /* local (CPU) APIC) -- required for SMP or not */
+    FIX_APIC_BASE,     /* local (CPU) APIC) -- required for SMP or not */
 #endif
 #ifdef CONFIG_X86_IO_APIC
-       FIX_IO_APIC_BASE_0,
-       FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,
-#endif
-#ifdef CONFIG_HIGHMEM
-       FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
-       FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
+    FIX_IO_APIC_BASE_0,
+    FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,
 #endif
 #ifdef CONFIG_ACPI_BOOT
-       FIX_ACPI_BEGIN,
-       FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
+    FIX_ACPI_BEGIN,
+    FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1,
 #endif
-       __end_of_fixed_addresses
+    __end_of_fixed_addresses
 };
 
-extern void __set_fixmap (enum fixed_addresses idx,
-                          l1_pgentry_t entry);
+#define FIXADDR_TOP   (0xffffe000UL)
+#define FIXADDR_SIZE  (__end_of_fixed_addresses << PAGE_SHIFT)
+#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
 
-#define set_fixmap(idx, phys) \
-               __set_fixmap(idx, mk_l1_pgentry(phys|PAGE_HYPERVISOR))
-/*
- * Some hardware wants to get fixmapped without caching.
- */
-#define set_fixmap_nocache(idx, phys) \
-               __set_fixmap(idx, mk_l1_pgentry(phys|PAGE_HYPERVISOR_NOCACHE))
-/*
- * used by vmalloc.c.
- *
- * Leave one empty page between vmalloc'ed areas and
- * the start of the fixmap, and leave one page empty
- * at the top of mem..
- */
-#define FIXADDR_TOP    (0xffffe000UL)
-#define FIXADDR_SIZE   (__end_of_fixed_addresses << PAGE_SHIFT)
-#define FIXADDR_START  (FIXADDR_TOP - FIXADDR_SIZE)
-
-#define __fix_to_virt(x)       (FIXADDR_TOP - ((x) << PAGE_SHIFT))
+extern void __set_fixmap(enum fixed_addresses idx,
+                         l1_pgentry_t entry);
 
-extern void __this_fixmap_does_not_exist(void);
+#define set_fixmap(idx, phys) \
+    __set_fixmap(idx, mk_l1_pgentry(phys|PAGE_HYPERVISOR))
 
-/*
- * 'index to address' translation. If anyone tries to use the idx
- * directly without tranlation, we catch the bug with a NULL-deference
- * kernel oops. Illegal ranges of incoming indices are caught too.
- */
-static inline unsigned long fix_to_virt(const unsigned int idx)
-{
-       /*
-        * this branch gets completely eliminated after inlining,
-        * except when someone tries to use fixaddr indices in an
-        * illegal way. (such as mixing up address types or using
-        * out-of-range indices).
-        *
-        * If it doesn't get removed, the linker will complain
-        * loudly with a reasonably clear error message..
-        */
-       if (idx >= __end_of_fixed_addresses)
-               __this_fixmap_does_not_exist();
+#define set_fixmap_nocache(idx, phys) \
+    __set_fixmap(idx, mk_l1_pgentry(phys|PAGE_HYPERVISOR_NOCACHE))
 
-        return __fix_to_virt(idx);
-}
+#define fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT))
 
 #endif
index 8b948758918b643b066e503bb07023a75aa3a53c..89e0fc0b5bb4030e2f0ba321ae85adca7856ac48 100644 (file)
@@ -15,7 +15,7 @@
 #define APIC_MISMATCH_DEBUG
 
 #define IO_APIC_BASE(idx) \
-               ((volatile int *)(__fix_to_virt(FIX_IO_APIC_BASE_0 + idx) \
+               ((volatile int *)(fix_to_virt(FIX_IO_APIC_BASE_0 + idx) \
                + (mp_ioapics[idx].mpc_apicaddr & ~PAGE_MASK)))
 
 /*